package com.linkgie.galaxyframework.crypto.spi;

/**
 * 密码学摘要生成器；
 * <p>
 * 
 * 支持对连续数据进行操作的功能；
 * 
 * @author liso
 *
 * @param <T>
 */
public interface DigestGenerator<T> {

	/**
	 * 追加数据；
	 * 
	 * @param data
	 */
	default void update(byte[] data) {
		update(data, 0, data.length);
	}

	/**
	 * 追加数据；
	 * 
	 * @param data
	 * @param offset
	 * @param length
	 */
	void update(byte[] data, int offset, int length);

	/**
	 * 完成操作；
	 * 
	 * @return
	 */
	T doFinal();
}
